home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / other / flexcat / lib / oberon-a.sd < prev    next >
Text File  |  1999-06-14  |  2KB  |  93 lines

  1. ##stringtype Oberon
  2. ##shortstrings
  3. MODULE %o3;
  4. (****************************************************************
  5.    This file was created automatically by `%fv'
  6.    Do NOT edit by hand!
  7.    Oberon-A source description C 1994 by Albert Weinert
  8.    Using with Oberon-A Interfaces for AmigaOS Release 3.1
  9.  
  10.    Application: %b
  11.    Language   : %l
  12.    Version    : %v
  13.    Description: %f0
  14.  
  15. ****************************************************************)
  16.  
  17. (* $P- *)
  18.  
  19. IMPORT
  20.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  21.  
  22. CONST
  23.   builtinlanguage = %l;
  24.   version = %v;
  25.  
  26. CONST
  27.   %i* = %d;
  28.  
  29. TYPE
  30.   AppString = RECORD;
  31.      id  : LONGINT;
  32.      str : e.STRPTR;
  33.   END;
  34.   AppStringArray = ARRAY %n OF AppString;
  35.  
  36. VAR
  37.   AppStrings : AppStringArray;
  38.   catalog : lo.CatalogPtr;
  39.  
  40.   PROCEDURE SetStrings;
  41.     BEGIN
  42.       AppStrings[%e].id := %i; AppStrings[%e].str := y.ADR( %s );
  43.     END SetStrings;
  44.  
  45.   PROCEDURE CloseCatalog*();
  46.     BEGIN
  47.       IF catalog # NIL THEN lo.base.CloseCatalog (catalog); catalog:=NIL END;
  48.    END CloseCatalog;
  49.  
  50.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  51.     VAR Tag : ARRAY 4 OF u.TagItem;
  52.     BEGIN
  53.       CloseCatalog();
  54.       IF (catalog = NIL) & (lo.base # NIL) THEN
  55.     Tag[0].tag := lo.ocBuiltInLanguage; Tag[0].data := y.ADR( builtinlanguage );
  56.     Tag[1].tag := u.tagSkip;      Tag[1].data := y.ADR( language );
  57.     Tag[2].tag := lo.ocVersion;        Tag[2].data := version;
  58.     Tag[3].tag := u.tagDone;
  59.  
  60.     IF language # "" THEN
  61.       Tag[1].tag:= lo.ocLanguage;
  62.     END;
  63.     catalog := lo.base.OpenCatalogA (loc, "%b.catalog", Tag);
  64.       END;
  65.     END OpenCatalog;
  66.  
  67.   PROCEDURE GetString* (num: LONGINT): e.STRPTR;
  68.     VAR
  69.       i: LONGINT;
  70.       default: e.STRPTR;
  71.     BEGIN
  72.       i := 0; WHILE (i < %n) & (AppStrings[i].id # num) DO INC (i) END;
  73.  
  74.       IF i # %n THEN
  75.     default := AppStrings[i].str;
  76.       ELSE
  77.     default := NIL;
  78.       END;
  79.  
  80.       IF catalog # NIL THEN
  81.     RETURN lo.base.GetCatalogStr (catalog, num, default^);
  82.       ELSE
  83.     RETURN default;
  84.       END;
  85.     END GetString;
  86.  
  87. BEGIN
  88.   catalog := NIL;
  89.   lo.OpenLib( FALSE );
  90.   SetStrings;
  91. END %o3.
  92.  
  93.